package com.ruoyi.business.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 采购入库单明细对象 jt_purchase_inbound_order_item
 * 
 * @author Alan Zhang
 * @date 2025-03-29
 */
public class JtPurchaseInboundOrderItem extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 入库单明细id */
    private Long inboundItemId;

    /** 入库单ID */
    @Excel(name = "入库单ID")
    private Long inboundOrderId;

    /** 商品id */
    @Excel(name = "商品id")
    private Long productId;

    /** 商品编码 */
    @Excel(name = "商品编码")
    private String productCode;

    //虚拟字段
    /** 商品名称 */
    @Excel(name = "商品名称")
    private String productName;

    /** 款式编码 */
    @Excel(name = "款式编码")
    private String styleNo;

    /** 规格 */
    @Excel(name = "规格")
    private String spec;

    /** 批次号 */
    @Excel(name = "批次号")
    private String batchNo;

    /** 生产日期 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date producedDate;

    /** 入库单价 */
    @Excel(name = "入库单价")
    private BigDecimal unitPrice;

    /** 入库数量 */
    @Excel(name = "入库数量")
    private Long qty;

    /** 入库金额 */
    @Excel(name = "入库金额")
    private BigDecimal amount;

    /** 仓位 */
    @Excel(name = "仓位")
    private String position;

    public void setInboundItemId(Long inboundItemId) 
    {
        this.inboundItemId = inboundItemId;
    }

    public Long getInboundItemId() 
    {
        return inboundItemId;
    }
    public void setInboundOrderId(Long inboundOrderId) 
    {
        this.inboundOrderId = inboundOrderId;
    }

    public Long getInboundOrderId() 
    {
        return inboundOrderId;
    }
    public void setProductId(Long productId) 
    {
        this.productId = productId;
    }

    public Long getProductId() 
    {
        return productId;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

    public void setBatchNo(String batchNo)
    {
        this.batchNo = batchNo;
    }

    public String getBatchNo() 
    {
        return batchNo;
    }
    public void setProducedDate(Date producedDate) 
    {
        this.producedDate = producedDate;
    }

    public Date getProducedDate() 
    {
        return producedDate;
    }
    public void setUnitPrice(BigDecimal unitPrice) 
    {
        this.unitPrice = unitPrice;
    }

    public BigDecimal getUnitPrice() 
    {
        return unitPrice;
    }
    public void setQty(Long qty) 
    {
        this.qty = qty;
    }

    public Long getQty() 
    {
        return qty;
    }
    public void setAmount(BigDecimal amount) 
    {
        this.amount = amount;
    }

    public BigDecimal getAmount() 
    {
        return amount;
    }
    public void setPosition(String position) 
    {
        this.position = position;
    }

    public String getPosition() 
    {
        return position;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getStyleNo() {
        return styleNo;
    }

    public void setStyleNo(String styleNo) {
        this.styleNo = styleNo;
    }

    public String getSpec() {
        return spec;
    }

    public void setSpec(String spec) {
        this.spec = spec;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("inboundItemId", getInboundItemId())
            .append("inboundOrderId", getInboundOrderId())
            .append("productId", getProductId())
            .append("batchNo", getBatchNo())
            .append("producedDate", getProducedDate())
            .append("unitPrice", getUnitPrice())
            .append("qty", getQty())
            .append("amount", getAmount())
            .append("position", getPosition())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .toString();
    }
}
